package com.tmxk.day01.lifeng.demo1;
/*
 * 创建一个用户自定义类 -->人类
 * 
 * 变量:变量值可以改变,由数据类型,变量名,变量值组成,在内存中开辟一块空间所存储的数据;
 * 变量分类分为局部变量和成员变量
 * 局部变量: 在方法/代码块中定义的变量,是局部变量;
 * 成员变量(属性): 在类中直接定义的变量,是成员变量;
 * 局部变量和成员变量区别:
 *   1.定义位置不同,局部变量在方法/代码块内定义,成员变量在类中定义
 *   2.作用域(使用范围)不同,局部变量只能在方法内部使用,成员变量在整个类中都可使用;
 *   3.初始值不同,局部变量在使用前必须赋初始值,成员变量在使用前没有赋初始值,系统会默认提供初始值;
 *   4.内存存储位置不同,局部变量存储在栈内存,成员变量存储在堆内存
 * 
 */
public class Person_lifeng {
	//饶嘉涛(name)男(sex)年龄(age)属于静态特征,即程序中属性(成员变量/实例变量)
	//姓名
	String name;
	//性别
	String sex;
	//年龄
	int age;
	
	//方法: 程序中带小括号的就叫方法
	/**
	 * 方法分类:无返回值数据类型,无参数
	 * 		   无返回值数据类型,带参数
	 * 		   有返回值数据类型,无参数
	 * 		   有返回值数据类型,带参数
	 * 无返回值数据类型关键字: void
	 * 形参: 形式上的参数,方法定义时,小括号中传递的,由数据类型和参数名组成;
	 * 实参: 实际传递的参数,调用方法时,小括号中传递的,只需传递参数名即可;
	 * 无返回值数据类型,无参数 语法: 访问修饰符  void 方法名(){  //  方法体 }
	 * 无返回值数据类型,带参数 语法: 访问修饰符  void 方法名(形参列表){  // 方法体}
	 */
	//吃饭(eat)学习(study)...属于动态特征(动态行为),及程序中方法
	public void eat() { 
		System.out.println(name + "在吃饭");
	}
	//方法重载: 在同一个类中定义的方法名相同,形参列表不同,构成了程序中的方法重载
	/*常识: 同一个作用域下,相同的局部变量不允许重名;相同的成员变量不允许重名;
	 *		同一个作用域下,局部变量和成员变量是允许同名的,且使用时遵循"就近原则" 
	 */	
	/**
	 * 定义了一个带参数无返回值的吃饭方法
	 * @param name
	 */
	public void eat(String name) {
		System.out.println(name + "在吃饭");
	}
	/**
	 * 定义了带两个形参的吃饭方法
	 */
	public void eat(String name,int num) {
		System.out.println(name + "带着" + num + "个人在干饭");
	}
}	
